package com.okaixz.manager.service.impl;

import com.okaixz.manager.domain.KbAssistantTab;
import com.okaixz.manager.mapper.KbAssistantTabMapper;
import com.okaixz.manager.service.IKbAssistantTabService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.stream.Collectors;

/**
 * 标签管理Service业务层处理
 *
 * @author cdz
 * @date 2025-05-14
 */
@Service
public class KbAssistantTabServiceImpl implements IKbAssistantTabService
{
    @Autowired
    private KbAssistantTabMapper kbAssistantTabMapper;

    /**
     * 查询标签管理
     *
     * @param id 标签管理主键
     * @return 标签管理
     */
    @Override
    public KbAssistantTab selectKbAssistantTabById(Integer id)
    {
        return kbAssistantTabMapper.selectKbAssistantTabById(id);
    }

    /**
     * 查询标签管理列表
     *
     * @param kbAssistantTab 标签管理
     * @return 标签管理
     */
    @Override
    public List<KbAssistantTab> selectKbAssistantTabList(KbAssistantTab kbAssistantTab)
    {
        return kbAssistantTabMapper.selectKbAssistantTabList(kbAssistantTab);
    }

    @Override
    public List<KbAssistantTab> selectKbAssistantTabList(Integer parentId) {
        if (parentId==null) {
            return kbAssistantTabMapper.selectKbAssistantTabList(null).stream().filter(kbAssistantTab -> !kbAssistantTab.getParentId().equals("0")).collect(Collectors.toList());
        }
        return kbAssistantTabMapper.selectListByParentId(parentId);
    }

    /**
     * 新增标签管理
     *
     * @param kbAssistantTab 标签管理
     * @return 结果
     */
    @Override
    public int insertKbAssistantTab(KbAssistantTab kbAssistantTab)
    {
        return kbAssistantTabMapper.insertKbAssistantTab(kbAssistantTab);
    }

    /**
     * 修改标签管理
     *
     * @param kbAssistantTab 标签管理
     * @return 结果
     */
    @Override
    public int updateKbAssistantTab(KbAssistantTab kbAssistantTab)
    {
        return kbAssistantTabMapper.updateKbAssistantTab(kbAssistantTab);
    }

    /**
     * 批量删除标签管理
     *
     * @param ids 需要删除的标签管理主键
     * @return 结果
     */
    @Override
    public int deleteKbAssistantTabByIds(Integer[] ids)
    {
        return kbAssistantTabMapper.deleteKbAssistantTabByIds(ids);
    }

    /**
     * 删除标签管理信息
     *
     * @param id 标签管理主键
     * @return 结果
     */
    @Override
    public int deleteKbAssistantTabById(Integer id)
    {
        return kbAssistantTabMapper.deleteKbAssistantTabById(id);
    }
}
